#ifndef FILEMANAGER_H
#define FILEMANAGER_H

#include <QWidget>
#include <QTcpSocket>

#include "myfileinfo.h"

namespace Ui {
class FileManager;
}

//消息类型
enum MsgType{
    FileInfo,   //文件信息，如文件名，文件大小等信息
    FileData,   //文件数据，即文件内容
};

class FileManager : public QWidget
{
    Q_OBJECT

    // 注意暂停下载和取消下载功能是未实现的
public:
    explicit FileManager(QWidget *parent = nullptr);
    ~FileManager();

    void readServerMsg();
    void fileInfoRead();
    void fileDataRead();

private slots:
    void on_downloadBtn_clicked();

    void on_openFolder_clicked();

    void on_resetProgress_clicked();


private:
    void connectToServer();
    bool connectToServer(QTcpSocket *socket);

    Ui::FileManager *ui;
    QTcpSocket* m_tcpSocket;
    MyFileInfo* myFile;// 下载的文件,自定义的文件类，包含了文件的信息和文件的数据
    QString m_downloadPath;//下载路径
    bool isDownloading; //是否正在下载标识
};

#endif // FILEMANAGER_H
